Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.11.2014, 12:42
Кандидат Javascript-наук
Отправить личное сообщение для zhurchik Посмотреть профиль Найти все сообщения от zhurchik
 
Регистрация: 04.06.2011
Сообщений: 116

О принципе работы long-polling, socket...
Приветствую Вас Уважаемые профессионалы. У меня имеется парочку вопросов.

1. Заголовок keep-alive... Когда браузер отправляет запрос через ajax, то сервер (apache) не закрывает соединение на протяжении 5 секунд. Так вот, соединение на протяжении этого времени считается открытым, а почему тогда при повторной отправке браузер опять формирует заголовки и прочее? В чем разница? Дело в том, что если браузер и сервер не закрывают соединение на протяжении 5 секунд, тогда зачем заморачиваться long-polling? Какое тогда между двумя этим запросами отличие? По мимо того, что с long-polling результат придет быстрее.

2. В предыдущем вопросе я упомянул long-polling, хотя особо не представляю как он работает. Пример, у меня имеется чат и сообщения которые хранятся в БД, то-есть, браузер отправляет запрос на сервер где сам запрос в БД (для проверки новый сообщений) помещен в бесконечный цикл и если новые данные имеются после этого сервер осуществляет ответ. Я правильно полян принцип? А не ляжет ли сервер от такого "Бесконечного" количество запросов в БД, ну предположим я буду отправлять цикл в сон каждые 500 миллисекунд, но тем не менее. Как в идеале это должно работать?

3. Сокеты работают по такому же принципу (я имею ввиду проверки новых данных) как я описал во втором вопросе?

4. Сколько максимум может длиться (по времени) запрос AJAX (версия HTTP/1.1). Ну, к примеру, если на сервере установить sleep на 20 минут. Это вообще нормально столько времени не закрывать соединения? Каждый браузер ведет себя по разному? Пробовал в гугл хром 38 версия, соединения держится более 10 минут, а дольше не пробовал.
Ответить с цитированием
  #2 (permalink)  
Старый 10.11.2014, 14:33
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,598

long-polling - это извращение возникшее поверх http. Суть в бескончной загрузке. Серевер просто не сообщает о том что загрузка закончена, а с определённым интервалом шлёт пару не информативных байтиков чтоб браузер не закрыл соединение как зависшее, когда появляются данные - сразу кидает их.
сокеты - это сокеты, они бывают разные, но вебсокеты - "человеческая" реализация того же принципа. Они созданы именно для того чтобы установить одно постоянное соединение с сервером и кидаться через него данными не делая лишних запросов.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2014, 15:04
Кандидат Javascript-наук
Отправить личное сообщение для zhurchik Посмотреть профиль Найти все сообщения от zhurchik
 
Регистрация: 04.06.2011
Сообщений: 116

Aetae,
На данный момент у меня имеется реализация long-polling, но скрипт не шлет с определенным интервалом не информативные байты, а только новые данные через определенное время.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск